#装饰器函数有参数的情况

#三个def 三个return，固定的写法
def arg_func(arg):#装饰器函数的参数接收
	def _func(f):#真正的装饰器，只有它是接收的函数名
		def _func1():#闭包函数，实现添加功能
			if arg=='good':
				print('出去玩');
			if arg=='bad':	
				print('宅家里');
			return f();
		return _func1;
	return _func;			

#可以理解为 arg_func 返回了 _func,后者是真正的装饰器，因为闭包的特性，它保持了参数

@arg_func('good')	#装饰器带了good参数
def funGood():
	print('Good Day');

@arg_func('bad')
def funBad():
	print('Bad Day');	#装饰器带了bad参数

funGood();
funBad();